from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import re

# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument('--headless')  # 隐藏浏览器窗口
chrome_options.add_argument('--disable-gpu')
# 启动Chrome浏览器
driver = webdriver.Chrome(options=chrome_options)

# 打开目标网址
keyword = '通义千问'
urls = [
    'https://search.bilibili.com/all?keyword=' + keyword,
    'https://so.csdn.net/so/search?q=' + keyword,
    'https://www.bing.com/search?q=' + keyword,
    'https://www.baidu.com/s?wd=' + keyword,
]

links_and_titles = []  # 存储所有链接和标题
keywords_to_filter = ['首页', '番剧', '直播', '游戏中心', '会员购', '漫画', '赛事', '万', '关于我们', '联系我们',
                      '用户协议', '加入我们', '友情链接', '隐私协议', 'bilibili认证', 'Investor', '协议汇总',
                      '活动中心', '活动专题页', '侵权申诉', '帮助中心', '社区中心', '壁纸站', '广告合作', '名人堂',
                      'MCN管理中心', '高级弹幕', '品牌号官网', '下载APP', '公益', '官方微博', '营业执照',
                      '网络文化经营许可证', '互联网ICP备案', '出版物经营许可证 沪批字第U6699 号', '不良信息举报邮箱',
                      '涉未成年举报邮箱', '上海互联网举报中心', '12345政务服务便民热线', '沪公网安',
                      '儿童色情信息举报专区', '扫黄打非举报', '中国互联网违法和不良信息举报中心', '博客', '下载',
                      '学习', '社区', '知道', 'GitCode', 'InsCode', '会议', '会员中心', '消息', '历史', '创作中心',
                      '发布', 'CSDN隐私协议', 'Z !', 'kefu@csdn.net', '在线客服', '招贤纳士', '商务合作', '寻求报道',
                      '京ICP备19004658号', '经营性网站备案信息', '公安备案号', '北京互联网违法和不良信息举报中心',
                      '家长监护', '中国互联网举报中心', '网络110报警服务', '账号管理规范', '版权与免责声明', '版权申诉',
                      '出版物许可证', 'Skip to content', 'Rewards', 'ALL', 'IMAGES', 'VIDEOS', 'MAPS', 'NEWS',
                      'SHOPPING', 'MORE', 'Privacy and Cookies', 'Legal', 'Advertise', 'About our ads', 'Help',
                      'Feedback', 'Consumer Health Privacy', '设置', '登录', '资讯', '图片', '视频', '贴吧', '文库',
                      '采购', '地图', '更多', '全部', '全民舞王', '干什么', '网页版', '入口', '谁开发', '免费吗',
                      '手机版', '换一换', '下一页', '帮助', '举报', '用户反馈', '企业推广', '详情', '广告', '点击使用',
                      '申请相关服务', '官方', '推广', '一起来感受吧', '出现背景', '名称由来', '发展历程', '主要功能',
                      '百度百科',
                      ]
domains_to_filter = ['space.bilibili']

for url in urls:
    driver.get(url)
    # 获取页面上所有的链接元素
    link_elements = driver.find_elements(By.TAG_NAME, 'a')

    # 提取链接和标题
    for element in link_elements:
        try:
            link = element.get_attribute('href')
            title = element.text
        except Exception as e:
            print(e)
        if not link or not title:
            continue
        title = title.strip().replace('\n', '')  # 清除标题中的换行符和空格
        contains_keyword = True
        for keyword1 in keywords_to_filter:
            if keyword1 in title:
                contains_keyword = False
                break
        for keyword1 in domains_to_filter:
            if keyword1 in link:
                contains_keyword = False
                break
        if contains_keyword and re.search('[\u4e00-\u9fff]', title):
            links_and_titles.append((link, title))

# 输出所有链接和标题
for link, title in links_and_titles:
    print(f'Title: {title}, Link: {link}')

# 关闭WebDriver
driver.quit()
